package com.qfjy.controller.example1;

import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.core.AmqpTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.servlet.http.HttpServletRequest;

/**
 * @ClassName AccountController
 * @Description TODO  公司 发送薪资，会将薪资明细通过电子邮件发送
 * @Author guoweixin
 * @Date 2023/4/13
 * @Version 1.0
 */
@RequestMapping("account")
@Controller
@Slf4j
public class AccountController {

    /**
     * RedisTemplate
     * JdbcTemplate
     * RestTemplate
     * 消息队列 RabbitMQ
     */
    @Autowired
    private AmqpTemplate amqpTemplate;

    /**
     * TODO 公司 发送薪资，会将薪资明细通过电子邮件发送
     */

    @GetMapping("sendWage")
    @ResponseBody
    public String sendWage(HttpServletRequest request){

        //公司发送薪资的业务逻辑  AccountService
        String cardId=request.getParameter("cardId");
        log.info("给该帐户发送薪资成功-->{}",cardId);

        //发送电子邮件的方法  串行（异步：多线程  代码是强耦合）

        // mq 异步且解耦 机制 代码优化
        /**
         *  param1  :队列名称 queue
         *  param2  :  Object var2 数据传输（二进制）
         */
        amqpTemplate.convertAndSend("emailQueue",cardId);



        return "发放薪资成功"+cardId;
    }

}
